NexusPi Git Node
tests/backend/test_map_data_manager.py 62c542bea55cb5ed487616cb77cdbe5fd1e01ffa (62c542be) Text, 7.59 KB
T8b949e# SPDX-License-Identifier: 0BSD
Tff7b72import T7ee787base64
Tff7b72import T7ee787json
Tff7b72from T7ee787unittestT7ee787.T7ee787mock Tff7b72import Te6edf3MagicMockTb4b4b4, Te6edf3patch
Tff7b72import T7ee787pytest
Tff7b72import T7ee787RNS
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787database Tff7b72import Te6edf3Database
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787map_data_manager Tff7b72import Tb4b4b4(
Te6edf3MAP_ASPECTTb4b4b4,
Te6edf3MapDataErrorTb4b4b4,
Te6edf3MapDataManagerTb4b4b4,
Te6edf3parse_map_data_app_dataTb4b4b4,
Tb4b4b4)
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787map_geo_validator Tff7b72import Te6edf3GeoValidationError
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787map_overlay_manager Tff7b72import Te6edf3MapOverlayManager
Te6edf3HASH Tff7b72= Ta5d6ff"Ta5d6ffabTa5d6ff" Tff7b72* T79c0ff16
Te6edf3GEOJSON Tff7b72= Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffFeatureCollectionTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffeaturesTa5d6ff"Tb4b4b4: Tb4b4b4[
Tb4b4b4{
Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffFeatureTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffpropertiesTa5d6ff"Tb4b4b4: Tb4b4b4{Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffCampTa5d6ff"Tb4b4b4}Tb4b4b4,
Ta5d6ff"Ta5d6ffgeometryTa5d6ff"Tb4b4b4: Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffPointTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffcoordinatesTa5d6ff"Tb4b4b4: Tb4b4b4[T79c0ff1.0Tb4b4b4, T79c0ff2.0Tb4b4b4]Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tff7b72.Td2a8ffencodeTb4b4b4(Tb4b4b4)
Te6edf3REMOTE_KML Tff7b72= Ta5d6ffbTa5d6ff"""Ta5d6ff<?xml version=Ta5d6ff"Ta5d6ff1.0Ta5d6ff"Ta5d6ff?>
Ta5d6ff<kml xmlns=Ta5d6ff"Ta5d6ffhttp://www.opengis.net/kml/2.2Ta5d6ff"Ta5d6ff><Document>
Ta5d6ff <Placemark><name>P</name>
Ta5d6ff <Style><IconStyle><Icon><href>https://evil.example/i.png</href></Icon></IconStyle></Style>
Ta5d6ff <Point><coordinates>1,2,0</coordinates></Point>
Ta5d6ff </Placemark>
Ta5d6ff</Document></kml>Ta5d6ff"""
Tff7b72class T56d364FakeValueTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3valueTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_value Tff7b72= Te6edf3value
Tff7b72def Td2a8ffgetTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ff_value
Tff7b72def Td2a8ffsetTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3valueTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_value Tff7b72= Te6edf3value
Tff7b72class T56d364FakeConfigTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_overlay_max_bytes Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff8 Tff7b72* T79c0ff1024 Tff7b72* T79c0ff1024Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_overlay_max_features Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff50_000Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_overlay_max_kmz_uncompressed_bytes Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff16 Tff7b72* T79c0ff1024 Tff7b72* T79c0ff1024Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_overlay_max_sources Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff64Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_overlay_max_concurrent_jobs Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff2Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_overlay_path_timeout_seconds Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff30Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_overlay_transfer_timeout_seconds Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff120Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_overlay_job_timeout_seconds Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff300Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_overlay_max_retries Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff1Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_overlay_retry_delay_seconds Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff1Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_data_max_bytes Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff512 Tff7b72* T79c0ff1024Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_data_announce_enabled Tff7b72= Te6edf3FakeValueTb4b4b4(Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_data_announce_interval Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff900Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_data_display_name Tff7b72= Te6edf3FakeValueTb4b4b4(Ta5d6ff"Ta5d6ffCamp mapsTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffannounce_store_map_data Tff7b72= Te6edf3FakeValueTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffannounce_max_stored_map_data Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff1000Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffannounce_fetch_limit_map_data Tff7b72= Te6edf3FakeValueTb4b4b4(T79c0ff500Tb4b4b4)
Tff7b72class T56d364FakeIdentityTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhash Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3HASHTb4b4b4)
Tf0883e@pytestTff7b72.Td2a8fffixture
Tff7b72def Td2a8ffdbTb4b4b4(Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Te6edf3database Tff7b72= Te6edf3DatabaseTb4b4b4(Tffa657strTb4b4b4(Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffdb.sqliteTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3databaseTff7b72.Td2a8ffinitializeTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3database
Tf0883e@pytestTff7b72.Td2a8fffixture
Tff7b72def Td2a8ffmanagerTb4b4b4(Te6edf3dbTb4b4b4, Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3MapDataManagerTb4b4b4(
Te6edf3FakeConfigTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3dbTb4b4b4,
Tffa657strTb4b4b4(Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffstorageTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3FakeIdentityTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8fftest_parse_map_data_app_data_jsonTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3parsed Tff7b72= Te6edf3parse_map_data_app_dataTb4b4b4(Ta5d6ffbTa5d6ff'Ta5d6ff{Ta5d6ff"Ta5d6ffvTa5d6ff"Ta5d6ff:1,Ta5d6ff"Ta5d6ffnTa5d6ff"Ta5d6ff:Ta5d6ff"Ta5d6ffCamp mapsTa5d6ff"Ta5d6ff,Ta5d6ff"Ta5d6ffcTa5d6ff"Ta5d6ff:3}Ta5d6ff'Tb4b4b4)
Tff7b72assert Te6edf3parsedTb4b4b4[Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffCamp mapsTa5d6ff"
Tff7b72assert Te6edf3parsedTb4b4b4[Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff3
Tff7b72def Td2a8fftest_parse_map_data_app_data_truncates_nameTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3parsed Tff7b72= Te6edf3parse_map_data_app_dataTb4b4b4(
Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Tb4b4b4{Ta5d6ff"Ta5d6ffvTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffxTa5d6ff" Tff7b72* T79c0ff80Tb4b4b4, Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4}Tb4b4b4)Tff7b72.Td2a8ffencodeTb4b4b4(Tb4b4b4)
Tb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3parsedTb4b4b4[Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4]Tb4b4b4) Tff7b72== T79c0ff32
Tff7b72def Td2a8fftest_publish_stores_sanitized_geojsonTb4b4b4(Te6edf3managerTb4b4b4)Tb4b4b4:
Te6edf3result Tff7b72= Te6edf3managerTff7b72.Td2a8ffpublish_bytesTb4b4b4(Te6edf3GEOJSONTb4b4b4, Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffCampTa5d6ff"Tb4b4b4)
Te6edf3row Tff7b72= Te6edf3resultTb4b4b4[Ta5d6ff"Ta5d6ffmapTa5d6ff"Tb4b4b4]
Tff7b72assert Te6edf3rowTb4b4b4[Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffCampTa5d6ff"
Tff7b72assert Te6edf3rowTb4b4b4[Ta5d6ff"Ta5d6ffformatTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffgeojsonTa5d6ff"
Tff7b72assert Te6edf3rowTb4b4b4[Ta5d6ff"Ta5d6fffeature_countTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff1
Te6edf3listed Tff7b72= Te6edf3managerTff7b72.Td2a8fflist_publishedTb4b4b4(Tb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3listedTb4b4b4) Tff7b72== T79c0ff1
Tff7b72assert Te6edf3listedTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffmap_idTa5d6ff"Tb4b4b4] Tff7b72== Te6edf3rowTb4b4b4[Ta5d6ff"Ta5d6ffmap_idTa5d6ff"Tb4b4b4]
Tff7b72def Td2a8fftest_publish_strips_remote_kml_hrefTb4b4b4(Te6edf3managerTb4b4b4)Tb4b4b4:
Te6edf3result Tff7b72= Te6edf3managerTff7b72.Td2a8ffpublish_bytesTb4b4b4(Te6edf3REMOTE_KMLTb4b4b4, Te6edf3nameTff7b72=Ta5d6ff"Ta5d6fflayerTa5d6ff"Tb4b4b4, Te6edf3hinted_formatTff7b72=Ta5d6ff"Ta5d6ffkmlTa5d6ff"Tb4b4b4)
Tff7b72assert Ta5d6ff"Ta5d6ffremote_hrefTa5d6ff" Tff7b72in Te6edf3resultTb4b4b4[Ta5d6ff"Ta5d6ffstrippedTa5d6ff"Tb4b4b4]
Te6edf3abs_path Tff7b72= Te6edf3managerTff7b72.Td2a8ffdata_rootTb4b4b4(Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3resultTb4b4b4[Ta5d6ff"Ta5d6ffmapTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffpathTa5d6ff"Tb4b4b4]
Tff7b72with Tffa657openTb4b4b4(Te6edf3abs_pathTb4b4b4, Ta5d6ff"Ta5d6ffrbTa5d6ff"Tb4b4b4) Tff7b72as Te6edf3fhTb4b4b4:
Te6edf3body Tff7b72= Te6edf3fhTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)
Tff7b72assert Ta5d6ffbTa5d6ff"Ta5d6ffhttps://evil.exampleTa5d6ff" Tff7b72not Tff7b72in Te6edf3body
Tff7b72def Td2a8fftest_publish_rejects_oversizedTb4b4b4(Te6edf3managerTb4b4b4)Tb4b4b4:
Te6edf3managerTff7b72.Td2a8ffconfigTff7b72.Td2a8ffmap_data_max_bytesTff7b72.Td2a8ffsetTb4b4b4(T79c0ff64 Tff7b72* T79c0ff1024Tb4b4b4)
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3MapDataErrorTb4b4b4) Tff7b72as Te6edf3excTb4b4b4:
Te6edf3managerTff7b72.Td2a8ffpublish_bytesTb4b4b4(Ta5d6ffbTa5d6ff"Ta5d6ff{Ta5d6ff" Tff7b72+ Ta5d6ffbTa5d6ff"Ta5d6ffxTa5d6ff" Tff7b72* Tb4b4b4(T79c0ff65 Tff7b72* T79c0ff1024Tb4b4b4)Tb4b4b4, Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffbigTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3excTff7b72.Td2a8ffvalueTff7b72.Td2a8ffcode Tff7b72== Ta5d6ff"Ta5d6fffile_too_largeTa5d6ff"
Tff7b72def Td2a8fftest_publish_rejects_emptyTb4b4b4(Te6edf3managerTb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3GeoValidationErrorTb4b4b4)Tb4b4b4:
Te6edf3managerTff7b72.Td2a8ffpublish_bytesTb4b4b4(Ta5d6ffbTa5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffemptyTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8fftest_unpublish_removes_fileTb4b4b4(Te6edf3managerTb4b4b4)Tb4b4b4:
Te6edf3result Tff7b72= Te6edf3managerTff7b72.Td2a8ffpublish_bytesTb4b4b4(Te6edf3GEOJSONTb4b4b4, Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffCampTa5d6ff"Tb4b4b4)
Te6edf3map_id Tff7b72= Te6edf3resultTb4b4b4[Ta5d6ff"Ta5d6ffmapTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffmap_idTa5d6ff"Tb4b4b4]
Tff7b72assert Te6edf3managerTff7b72.Td2a8ffunpublishTb4b4b4(Te6edf3map_idTb4b4b4) Tff7b72is Tff7b72True
Tff7b72assert Te6edf3managerTff7b72.Td2a8fflist_publishedTb4b4b4(Tb4b4b4) Tff7b72== Tb4b4b4[Tb4b4b4]
Tff7b72assert Te6edf3managerTff7b72.Td2a8ffunpublishTb4b4b4(Te6edf3map_idTb4b4b4) Tff7b72is Tff7b72False
Tff7b72def Td2a8fftest_catalog_payloadTb4b4b4(Te6edf3managerTb4b4b4)Tb4b4b4:
Te6edf3managerTff7b72.Td2a8ffpublish_bytesTb4b4b4(Te6edf3GEOJSONTb4b4b4, Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffCampTa5d6ff"Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3managerTff7b72.Td2a8ff_catalog_payloadTb4b4b4(Tb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmapsTa5d6ff"Tb4b4b4]Tb4b4b4) Tff7b72== T79c0ff1
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmapsTa5d6ff"Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffCampTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmapsTa5d6ff"Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffformatTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffgeojsonTa5d6ff"
Tff7b72def Td2a8fftest_stop_deregisters_destinationTb4b4b4(Te6edf3managerTb4b4b4)Tb4b4b4:
Te6edf3dest Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3managerTff7b72.Td2a8ff_destination Tff7b72= Te6edf3dest
Te6edf3managerTff7b72.Td2a8ff_running Tff7b72= Tff7b72True
Te6edf3managerTff7b72.Td2a8ff_registered_map_paths Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ff/map/aaaaaaaaaaaaaaaaTa5d6ff"Tb4b4b4}
Tff7b72with Te6edf3patchTff7b72.Td2a8ffobjectTb4b4b4(Te6edf3RNSTff7b72.Td2a8ffTransportTb4b4b4, Ta5d6ff"Ta5d6ffderegister_destinationTa5d6ff"Tb4b4b4) Tff7b72as Te6edf3deregTb4b4b4:
Te6edf3managerTff7b72.Td2a8ffstopTb4b4b4(Tb4b4b4)
Te6edf3destTff7b72.Td2a8ffderegister_request_handlerTff7b72.Td2a8ffassert_any_callTb4b4b4(Ta5d6ff"Ta5d6ff/catalogTa5d6ff"Tb4b4b4)
Te6edf3destTff7b72.Td2a8ffderegister_request_handlerTff7b72.Td2a8ffassert_any_callTb4b4b4(Ta5d6ff"Ta5d6ff/map/aaaaaaaaaaaaaaaaTa5d6ff"Tb4b4b4)
Te6edf3deregTff7b72.Td2a8ffassert_called_once_withTb4b4b4(Te6edf3destTb4b4b4)
Tff7b72assert Te6edf3managerTff7b72.Td2a8ff_destination Tff7b72is Tff7b72None
Tff7b72assert Te6edf3managerTff7b72.Td2a8ff_running Tff7b72is Tff7b72False
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_ingest_overlay_kind_map_dataTb4b4b4(Te6edf3managerTb4b4b4, Te6edf3dbTb4b4b4, Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Te6edf3overlay Tff7b72= Te6edf3MapOverlayManagerTb4b4b4(
Te6edf3managerTff7b72.Td2a8ffconfigTb4b4b4,
Te6edf3dbTb4b4b4,
Tffa657strTb4b4b4(Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffoverlayTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3reticulum_config_dirTff7b72=Tff7b72NoneTb4b4b4,
Tb4b4b4)
Te6edf3managerTff7b72.Td2a8ff_overlay_manager_getter Tff7b72= Tff7b72lambdaTb4b4b4: Te6edf3overlay
Te6edf3published Tff7b72= Te6edf3managerTff7b72.Td2a8ffpublish_bytesTb4b4b4(Te6edf3GEOJSONTb4b4b4, Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffCampTa5d6ff"Tb4b4b4)
Te6edf3map_id Tff7b72= Te6edf3publishedTb4b4b4[Ta5d6ff"Ta5d6ffmapTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffmap_idTa5d6ff"Tb4b4b4]
Tff7b72async Tff7b72def Td2a8fffake_fetch_map_bytesTb4b4b4(Te6edf3_destTb4b4b4, Te6edf3_map_idTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3GEOJSON
Tff7b72async Tff7b72def Td2a8fffake_catalogTb4b4b4(Te6edf3_destTb4b4b4)Tb4b4b4:
Tff7b72return Tb4b4b4{
Ta5d6ff"Ta5d6ffmapsTa5d6ff"Tb4b4b4: Tb4b4b4[
Tb4b4b4{
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Te6edf3map_idTb4b4b4,
Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffCampTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffformatTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffgeojsonTa5d6ff"Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4]Tb4b4b4,
Tb4b4b4}
Te6edf3managerTff7b72.Td2a8fffetch_map_bytes Tff7b72= Te6edf3fake_fetch_map_bytes
Te6edf3managerTff7b72.Td2a8fffetch_catalog Tff7b72= Te6edf3fake_catalog
Te6edf3result Tff7b72= Tff7b72await Te6edf3managerTff7b72.Td2a8ffadd_as_overlayTb4b4b4(Te6edf3HASHTb4b4b4, Te6edf3map_idTb4b4b4)
Te6edf3overlay_row Tff7b72= Te6edf3resultTb4b4b4[Ta5d6ff"Ta5d6ffoverlayTa5d6ff"Tb4b4b4]
Tff7b72assert Te6edf3overlay_rowTb4b4b4[Ta5d6ff"Ta5d6ffkindTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffmap_dataTa5d6ff"
Tff7b72assert Te6edf3overlay_rowTb4b4b4[Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffreadyTa5d6ff"
Tff7b72assert Te6edf3overlay_rowTb4b4b4[Ta5d6ff"Ta5d6ffformatTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffgeojsonTa5d6ff"
Tff7b72def Td2a8fftest_announce_app_data_is_slimTb4b4b4(Te6edf3managerTb4b4b4)Tb4b4b4:
Te6edf3dest Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3destTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTff7b72.Td2a8ffreturn_value Tff7b72= Ta5d6ff"Ta5d6ffcdTa5d6ff" Tff7b72* T79c0ff16
Te6edf3managerTff7b72.Td2a8ff_destination Tff7b72= Te6edf3dest
Te6edf3managerTff7b72.Td2a8ff_running Tff7b72= Tff7b72True
Te6edf3managerTff7b72.Td2a8ffpublish_bytesTb4b4b4(Te6edf3GEOJSONTb4b4b4, Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffCampTa5d6ff"Tb4b4b4)
Te6edf3managerTff7b72.Td2a8ffconfigTff7b72.Td2a8ffmap_data_announce_enabledTff7b72.Td2a8ffsetTb4b4b4(Tff7b72TrueTb4b4b4)
Te6edf3status Tff7b72= Te6edf3managerTff7b72.Td2a8ffannounceTb4b4b4(Tb4b4b4)
Te6edf3destTff7b72.Td2a8ffannounceTff7b72.Td2a8ffassert_called_onceTb4b4b4(Tb4b4b4)
Te6edf3app_data Tff7b72= Te6edf3destTff7b72.Td2a8ffannounceTff7b72.Td2a8ffcall_argsTff7b72.Td2a8ffkwargsTb4b4b4[Ta5d6ff"Ta5d6ffapp_dataTa5d6ff"Tb4b4b4]
Te6edf3parsed Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3app_dataTff7b72.Td2a8ffdecodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72assert Te6edf3parsedTb4b4b4[Ta5d6ff"Ta5d6ffvTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff1
Tff7b72assert Te6edf3parsedTb4b4b4[Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffCamp mapsTa5d6ff"
Tff7b72assert Te6edf3parsedTb4b4b4[Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff1
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3app_dataTb4b4b4) Tff7b72< T79c0ff128
Tff7b72assert Te6edf3statusTb4b4b4[Ta5d6ff"Ta5d6ffaspectTa5d6ff"Tb4b4b4] Tff7b72== Te6edf3MAP_ASPECT
Tff7b72def Td2a8fftest_list_heard_parses_slim_app_dataTb4b4b4(Te6edf3managerTb4b4b4, Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3app Tff7b72= Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Tb4b4b4{Ta5d6ff"Ta5d6ffvTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffCamp mapsTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4: T79c0ff3Tb4b4b4}Tb4b4b4, Te6edf3separatorsTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ff,Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff:Ta5d6ff"Tb4b4b4)Tb4b4b4)Tff7b72.Td2a8ffencodeTb4b4b4(Tb4b4b4)
Te6edf3dbTff7b72.Td2a8ffannouncesTff7b72.Td2a8ffupsert_announceTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffdestination_hashTa5d6ff"Tb4b4b4: Te6edf3HASHTb4b4b4,
Ta5d6ff"Ta5d6ffaspectTa5d6ff"Tb4b4b4: Te6edf3MAP_ASPECTTb4b4b4,
Ta5d6ff"Ta5d6ffidentity_hashTa5d6ff"Tb4b4b4: Te6edf3HASHTb4b4b4,
Ta5d6ff"Ta5d6ffidentity_public_keyTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffcHViTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffapp_dataTa5d6ff"Tb4b4b4: Te6edf3base64Tff7b72.Td2a8ffb64encodeTb4b4b4(Te6edf3appTb4b4b4)Tff7b72.Td2a8ffdecodeTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffrssiTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Ta5d6ff"Ta5d6ffsnrTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Ta5d6ff"Ta5d6ffqualityTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3heard Tff7b72= Te6edf3managerTff7b72.Td2a8fflist_heardTb4b4b4(Tb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3heardTb4b4b4) Tff7b72== T79c0ff1
Tff7b72assert Te6edf3heardTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffmap_nameTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffCamp mapsTa5d6ff"
Tff7b72assert Te6edf3heardTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffmap_countTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff3
Served by rngit 1.5.2 - Generated in 0.04s